#pragma once

namespace CPreProc
{
  template <class T>
  int local_value_num_bits()
  {
    return sizeof(T);
  }

  template <class T>
  T unsigned_int_max()
  {
    return ~0;
  }

  class BigUInt
  {
  public:
    BigUInt(unsigned int src = 0);

    BigUInt& operator += (int i);

    BigUInt operator + (int i) const;
    BigUInt operator - (int i) const;
    BigUInt operator * (int i) const;
    BigUInt operator / (int b) const;
    
    bool operator > (const BigUInt &b) const;

  private:
    unsigned char parts[16];
    int size;
  };
}

